package utils

import (
	"gitee.com/zjlsliupei/ghelp"
	"github.com/rs/xid"
)

// token模块依赖于缓存模块
type Token struct {
	prefix string
}

func NewToken(prefix string) Token {
	return Token{
		prefix: prefix,
	}
}

// Create 创建token, 并将参数绑定到token
func (__ *Token) Create(bindArg string, expireSecond int64) string {
	id := xid.New()
	token := ghelp.Md5(id.String())
	err := CPut(__.prefix+token, bindArg, expireSecond)
	if err != nil {
		return ""
	}
	return token
}

// GetBindArgByToken 根据token获取绑定信息
func (__ *Token) GetBindArgByToken(token string) string {
	data, _ := CGet(__.prefix + token)
	return data
}
